package com.healthcloud.service.accompany;

import com.healthcloud.dto.req.accompany.AccompanyBlFirstFromHospImportDTO;
import com.healthcloud.dto.req.accompany.AccompanyBlFirstImportDTO;
import com.healthcloud.dto.req.accompany.AccompanyBlMonth12ImportDTO;
import com.healthcloud.dto.req.accompany.AccompanyBlMonth18ImportDTO;
import com.healthcloud.dto.req.accompany.AccompanyBlMonth24ImportDTO;
import com.healthcloud.dto.req.accompany.AccompanyBlMonth6ImportDTO;
import com.healthcloud.entity.accompany.AccompanyBlNoMedicalEntity;
import com.healthcloud.utils.ApiRes;

import java.util.List;

/**
 * 骨松随访-没有用药-区分首次、6、12、18、24个月 服务层
 *
 * @author liujx
 * @date 2020-08-03
 */
public interface AccompanyBlNoMedicalService {
    /**
     * 查询骨松随访-没有用药-区分首次、6、12、18、24个月信息
     *
     * @param id 骨松随访-没有用药-区分首次、6、12、18、24个月ID
     * @return 骨松随访-没有用药-区分首次、6、12、18、24个月信息
     */
    AccompanyBlNoMedicalEntity selectAccompanyBlNoMedicalById(Long id);

    /**
     * 查询骨松随访-没有用药-区分首次、6、12、18、24个月列表
     *
     * @param accompanyBlNoMedical 骨松随访-没有用药-区分首次、6、12、18、24个月信息
     * @return 骨松随访-没有用药-区分首次、6、12、18、24个月集合
     */
    List<AccompanyBlNoMedicalEntity> selectAccompanyBlNoMedicalList(AccompanyBlNoMedicalEntity accompanyBlNoMedical);

    /**
     * 修改骨松随访-没有用药-区分首次、6、12、18、24个月
     *
     * @param accompanyBlNoMedical 骨松随访-没有用药-区分首次、6、12、18、24个月信息
     * @return 结果
     */
    int updateAccompanyBlNoMedical(AccompanyBlNoMedicalEntity accompanyBlNoMedical);

    /**
     * 删除骨松随访-没有用药-区分首次、6、12、18、24个月信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteAccompanyBlNoMedicalByIds(String ids);

    /**
     * 将骨松筛查及首次问卷excel数据添加到 db 中
     *
     * @param list
     * @return
     */
    ApiRes importExcelFirstData(List<AccompanyBlFirstImportDTO> list) throws Exception;

    /**
     * 将骨松筛查及首次问卷excel数据添加到 db 中
     *
     * @param list
     * @return
     */
    ApiRes importExcelFirstDataForHosp(List<AccompanyBlFirstFromHospImportDTO> list) throws Exception;

    /**
     * 将6个月随访问卷excel数据添加到 db 中
     *
     * @param list
     * @return
     */
    ApiRes importExcelMonth6Data(List<AccompanyBlMonth6ImportDTO> list) throws Exception;

    /**
     * 将12个月随访问卷数据添加到 db 中
     *
     * @param list
     * @return
     */
    ApiRes importExcelMonth12Data(List<AccompanyBlMonth12ImportDTO> list) throws Exception;

    /**
     * 将18个月随访问卷数据添加到 db 中
     *
     * @param list
     * @return
     */
    ApiRes importExcelMonth18Data(List<AccompanyBlMonth18ImportDTO> list) throws Exception;

    /**
     * 将24个月随访问卷数据添加到 db 中
     *
     * @param list
     * @return
     */
    ApiRes importExcelMonth24Data(List<AccompanyBlMonth24ImportDTO> list) throws Exception;

    /**
     * 保存无药物骨松随访（新增/修改）
     */
    ApiRes saveOrUpdate(AccompanyBlNoMedicalEntity entity);

    /**
     * 查询骨松随访-没有用药-区分首次、6、12、18、24个月信息
     */
    AccompanyBlNoMedicalEntity queryByAccompanyBlId(Long accompanyBlId);

    /**
     * 根据 accompany_bl_id 列表，逻辑删除无药物骨松随访
     */
    int batchRemoveByAccompanyBlIds(Long[] accompanyBlIds);

}